package com.glut.campusrepair.mapper;

import com.glut.campusrepair.dto.AddEvaluationdto;
import com.glut.campusrepair.dto.MaintenanceShortRecordsdto;
import com.glut.campusrepair.dto.ShowEvaluationdto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.glut.campusrepair.entity.ServiceEvaluation;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glut.campusrepair.entity.ServiceEvaluationExample;

import java.util.List;

/**
* 用户评分表 Mapper
*
* @author sanminzhi
* @since 2024-07-19 11:26
*/
@Mapper
public interface ServiceEvaluationMapper extends BaseMapper<ServiceEvaluation> {


    /**wsy
     * 通过维修记录id给维修记录添加评价
     *点击评价按钮后的操作
     * */
    int insert_2(AddEvaluationdto addEvaluationdto);


    /**wsy
     * 通过用户id查询所有简洁版的维修记录，再通过其中的维修记录id查找出相应的评价
     *点击查看评价按钮后的操作
     * */
    List<MaintenanceShortRecordsdto> selectAssociation(Integer userNo);


    /**wsy
     * 点击提交评价按钮后，根据维修记录id将评价状态（eva_status）的值改为’已评价‘
     * */
    int updateEvaStatus(Integer maintenanceRecordsId);


    /**wsy
     * 点击查看评价按钮后，根据维修记录id查询出相应的评价信息
     * */
    ShowEvaluationdto selectEvaluationById(Integer maintenanceRecordsId);

    /**
     * 根据主键id查询
     *
     * @param evaId
     * @return 记录信息
     */
    ServiceEvaluation selectByPrimaryKey(Integer evaId);

    /**
     * 根据主键删除数据
     *
     * @param evaId
     * @return 数量
     */
    int deleteByPrimaryKey(Integer evaId);

    /**
     * 删除数据
     *
     * @param example 条件
     * @return 删除数量
     */
    int deleteByExample(ServiceEvaluationExample example);

    /**
     * 插入数据库记录（不建议使用）
     *
     * @param record
     */
    int insert(ServiceEvaluation record);

    /**
     * 插入数据库记录（建议使用）
     *
     * @param record 插入数据
     * @return 插入数量
     */
    int insertSelective(ServiceEvaluation record);

    /**
     * 修改数据
     *
     * @param record  更新值
     * @param example 条件
     * @return 更新数量
     */
    int updateByExampleSelective(@Param("record") ServiceEvaluation record, @Param("example") ServiceEvaluationExample example);

    /**
     * 更新记录包含BLOB
     *
     * @param record  更新值
     * @param example 条件
     * @return 更新数量
     */
    int updateByExampleWithBLOBs(@Param("record") ServiceEvaluation record, @Param("example") ServiceEvaluationExample example);

    /**
     * 修改数据
     *
     * @param record  更新值
     * @param example 条件
     * @return 更新数量
     */
    int updateByExample(@Param("record") ServiceEvaluation record, @Param("example") ServiceEvaluationExample example);

    /**
     * 修改数据(推荐使用)
     *
     * @param record 更新值
     * @return 更新数量
     */
    int updateByPrimaryKeySelective(ServiceEvaluation record);

    /**
     * 根据主键更新数据
     *
     * @param record 更新值
     * @return 更新数量
     */
    int updateByPrimaryKeyWithBLOBs(ServiceEvaluation record);

    /**
     * 根据主键更新数据
     *
     * @param record 更新值
     * @return 更新数量
     */
    int updateByPrimaryKey(ServiceEvaluation record);
}


